//
//  XCNSSet.m
//  IOSDome
//
//  Created by 刘波 on 2019/5/9.
//  Copyright © 2019 clobe. All rights reserved.
//

#import "XCNSSet.h"

@implementation XCNSSet


-(void)setNSSet{
    //创建一个空集合
    NSSet *set;
    set = [[NSSet alloc] init];
    set = [NSSet new];
    set = [NSSet set];
    //通过指定对象创建数组
    set = [NSSet setWithObject:@"a"];
    set = [NSSet setWithObjects:@"a",@"b",@"c", nil];
    //通过数组构建集合
    NSArray *array = @[@"a",@"b",@"c",@"d"];
    set = [[NSSet alloc] initWithArray:array];
    //通过已有集合构建集合
    NSSet *set2 = [[NSSet alloc] initWithSet:set];
    //返回集合中对象的个数
    NSInteger count = [set count];
    //返回集合中的所有对象
    NSArray *allArr = [set allObjects];
    //返回集合中任意对象
    id object = [set anyObject];
    //判断集合是否包含指定元素
    BOOL isContain = [set containsObject:@"a"];
    //判断两个集合是否至少存在一个相同元素
    BOOL isIntersect = [set intersectsSet:set2];
    //判断两个集合中的元素是否完全相等
    BOOL isEqual = [set isEqualToSet:set2];
    //判断set是否是set2的子集合
    BOOL isSubset = [set isSubsetOfSet:set2];
    
    //可变集合 NSMutableSet
    //初始化一个指定大小的可变集合
    NSMutableSet *mSet = [NSMutableSet setWithCapacity:10];
    //添加一个集合对象
    [mSet setByAddingObjectsFromSet:set];
    [mSet addObject:@"d"];
    [mSet addObjectsFromArray:@[@"e",@"f"]];
    //删除指定元素
    [mSet removeObject:@"f"];
    //删除所有元素
    [mSet removeAllObjects];
    
    NSMutableSet *mSet2 = [NSMutableSet setWithObjects:@"3",@"4",@"5",@"6", nil];
    NSMutableSet *mSet3 = [NSMutableSet setWithObjects:@"5",@"6",@"7",@"8", nil];
    //交集 两个集合相同的元素
    [mSet2 intersectsSet:mSet3]; //6 5
    //并集 集合中添加指定集合所有元素
    [mSet2 unionSet:mSet3]; //3 8 6 4 7 5
    //差集 从集合中移除指定集合的所有元素
    [mSet2 minusSet:mSet3]; // 3 4
}

@end
